In every industry, computers are coming into everyday use. These computers are used to write and read data to large storage devices to store and recall the tremendous volumes of information that are increasingly required by small and large businesses.
Storage devices in all computer systems are susceptible to failures. This is especially true in disc drives where failures can be caused by temperature variations, head crashes, motor failure, controller failure, and changing voltage conditions. Modern computer systems for critical systems, such as airport controllers, require a fault-tolerant data storage system, for protecting data against disk drive failure.
One approach to meeting this need is to provide a redundant array of independent disks (RAID) system operated by a disk array controller (controller). RAID technology developed to provide for reliable storage of data on multiple storage devices. RAID allows the combining of two or more storage devices, such as disk drive systems, to create an array of storage devices.
Hardware or software implementation allows the multiple storage devices to be treated as one logical storage device. Data is stored redundantly in various ways to enhance data integrity and availability. RAID sub-systems provide cost-effective solutions for storage strategies. RAID systems are also able to provide improved data transfer rates and throughput of data.
RAID technology provides various ways to use multiple storage devices to increase availability and performance. A number of RAID levels have been defined in which each level provides unique throughput and fault tolerance characteristics. Several RAID levels provide fault tolerance such that if one of the multiple storage devices fails, then access to all data stored on the array is still available. The failed storage device may be replaced or repaired while the array is still usable and accessible as though there had been no failure.
One of the RAID levels is “RAID 0”, which uses storage device spanning. Storage device spanning allows multiple storage devices to be logically and serially linked into a single large logical storage device. RAID 0 uses a “data striping” layout in which data is evenly distributed across the physical storage devices to maximize input or output performance. Data striping divides the logical storage device into data sequences called stripes, which are distributed over the storage devices. The layout is such that a sequential read of data on the logical storage device results in parallel reads to the storage devices. RAID 0 provides performance acceleration through data striping. However, RAID 0 does not provide redundancy.
Another of the RAID levels is “RAID 1”, which uses data mirroring. With data mirroring, a single logical storage device is created from two physical storage devices. All data written to the logical storage device is written identically to the two storage devices. Thus, a pair of storage devices with identical data is created. If one of the physical storage devices fails, the same data is still accessible from the other physical storage device by using a hot-spare storage device to reestablish the mirror relationship and redundancy while the failed storage device is being replaced or repaired. RAID 1 provides redundancy through mirrored copy of data and better read performance than RAID 0. However, RAID 1 has worse write performance than RAID 0 and an even number of physical storage devices is required. RAID 1 is most particularly useful when performance is more important than capacity and when the device configuration is limited to two storage devices.
“RAID 1 Enhanced” (RAID 1E) combines data mirroring with data striping. Data is striped across each storage device in the array. The first set of stripes is the data stripes while the second set of stripes is the mirror stripes (copies) of the first data stripes that are shifted one storage device. RAID 1E shares the same characteristics of RAID 1 but additionally allows more than two storage devices as part of the storage device array and also allows an odd number of storage devices as part of the storage device array. However, RAID 1E still has worse write performance than RAID 0
Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.